
package ModelLayer;

import java.util.ArrayList;

/**
 * @author (GP3 Product Solutions) 
 * @version (08-06-2011 THSS: Oprettelse af klassen)
 */
public class OrdreRegister 
{
    // instans variabler
    private Ordre ordre;
    private ArrayList<Ordre> ordreListe;
    static OrdreRegister instance = null;
    
    /**
     * * Konstruktør for objekter af klassen Ordre
     */
    public OrdreRegister()
    {
        ordreListe = new ArrayList<Ordre>();
    }
            
            
    /**
     * Opretter en instans af OrdreRegister
     * @return Returnerer en instans af OrdreRegister
     */
    public static OrdreRegister getInstance()
    {
        if(instance == null)
        {
            instance = new OrdreRegister();
        }
        return instance;
    }
    
    /**
     * Metode der tilføjer en ordre til en ArrayList
     * @param ordre objekt af typen Ordre
     */
    public void tilfoejOrdre(Ordre ordre)
            {
              ordreListe.add(ordre);
            }
    
    /**
     * Metode der sletter en ordre fra ordrelisten
     * @param ordreId int ordrens ordreId
     */
    public void sletOrdre(int ordreId)
    {
        Ordre o = findOrdre(ordreId);
        ordreListe.remove(o);
    }
    
    /**
    * Metode der finder en ordre fra ordreRegisteret
    * @param int ordrens ordreId
    */
    public Ordre findOrdre(int ordreId)
    {
        boolean found = false;
        int index = 0;
        Ordre o = null;
        while (index < ordreListe.size() && !found)
        {
            if (ordreListe.get(index).hentOrdreId() == ordreId)
            {
                found = true;
                o = ordreListe.get(index);
            }
            index++;
        }
        if(!found)
        {
            found = false;
        }
        
        return o;
    }
    
    /**
     * Metode der udskriver alle ordre i en String
     * @return String en String med ordrens information
     */
    public String udskrivAlleOrdre()
    {
        String ordreInfo = "";
        for(Ordre ordren : ordreListe)
        {
           ordreInfo += ordren.toString();                 
        }
        
        return ordreInfo;
    }
    
    /**
     * Metode der udskriver alle tilbud 
     */
    public void udskrivAlleTilbud()
    {
        //Metoden er ikke implementeret
    }
    
    /**
     * Metode der udskriver en ordrebekræftelse
     */
    public void udskrivOrdreBekraeftelse()
    {
        //Metoden er ikke implementeret
    }
    
    /**
     * Metode der udskriver en ekspeditionsseddel
     */
    public void udskrivEkspeditionsseddel()
    {
        //Metoden er ikke implementeret
    }
    
    /**
     * Metode der udskriver en følgeseddel
     */
    public void udskrivFoelgeseddel()
    {
        //Metoden er ikke implementeret
    }
    
    /**
     * Metode der generere et id til ordre
     * @return int ordrens ordreId
     */
    public int genererOrdreId()
     {
         int ordreId = ordreListe.size();
         return ordreId;
     }
}